package CutLoad.components
{
	import CutLoad.Base;
	import CutLoad.components.container.ContainerH;
	import CutLoad.cookies.CArray;
	
	import flash.events.MouseEvent;
	/**
	 * 复选框 
	 * @author smallerbird mail:smallerbird@gmail.com  site:www.mkigm.com QQ群:49983196
	 * 
	 */	
	public class CCheckBox extends Base
	{
		protected var arr:CArray;
		protected var funClick:Function;
		private var container:ContainerH;
		//一个选框内部：框和标签间距
		protected var itemSpaceX:Number;
		/**
		 *初始化
		 * @param arrLabel 复选框标签数组
		 * @param funClick 点击某一项会调用的方法  格式:function(id:Number,item:CCheckBoxItem);  注:id从0开始
		 * @param spaceX 复选框与复选框间距
		 * @param itemSpaceX 单个复选框初始化方法里的间距参数
		 * 
		 */		
		public function init(arrLabel:Array,funClick:Function=null,spaceX:Number=5,itemSpaceX:Number=5):void{
			//
			this.itemSpaceX=itemSpaceX;
			arr=new CArray();
			container=new ContainerH();
			container.init({w:50,h:50,isAuto:false,xspace:spaceX});
			container.show(this);
			for(var i:Number=0;i<arrLabel.length;i++){
				container.append(addOneItem(arrLabel[i]),i==(arrLabel.length-1)?true:false);
			}
			container.setTakeWH();
			//
			this.funClick=funClick;
		}
		protected function addOneItem(strLabel:String):CCheckBoxItem{
			var item:CCheckBoxItem=new CCheckBoxItem();
			item.init(strLabel,itemSpaceX,funItemClick);
			arr.add(item);
			return item;
		}
		/**
		 *添加一复选框项 
		 * @param strLabel
		 * @return 
		 * 
		 */		
		public function addItem(strLabel:String):CCheckBoxItem{
			var item:CCheckBoxItem=this.addOneItem(strLabel)
			container.append(item);
			container.setTakeWH();
			return item;
		}
		/**
		 * 获得复选框的选重或没有选重所有的状态数组 [true,false] true代表选重，false代表没有选重 
		 * @return 
		 * 
		 */		
		public function get value():Array{
			var arrReturn:Array=new Array();
			for(var i:Number=0;i<arr.length;i++){
				var itemTem:CCheckBoxItem=arr.data[i];
				arrReturn.push(itemTem.value);
			}
			return arrReturn;
		}		
		/**
		 * 设置选重或不选重
		 * @param arrSelect 格式：[选择框1的选重状态(true或false),选择框2的选重状态(true或false),.....]
		 * 
		 */		
		public function set value(arrSelect:Array):void{
			for(var i:Number=0;i<arr.length;i++){
				var itemTem:CCheckBoxItem=arr.data[i];
				if(i<arrSelect.length){
					itemTem.value=arrSelect[i]
				}
			}
		}
		protected function funItemClick(itemTem:CCheckBoxItem):void{
			for(var i:Number=0;i<arr.length;i++){
				if(arr.data[i]==itemTem){
					if(funClick!=null) funClick(i,itemTem);
					return;
					break;
				}
			}
		}
	}
}